/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ui;

import io.MorososDTO;
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;

/**
 *
 * @author Acer
 */
public class MorososTableModel extends AbstractTableModel{
  String[] columnNames = {"Cliente","Teléfono","Direccion","Fecha de Vencimiento (dd/mm/aaaa)","Cuota Número","Monto Adeudado"};
  
    ArrayList<MorososDTO> dataMorosos = new ArrayList<MorososDTO>();

    /**
     * Permite setear la lista de Movimientos de Gestoria
     * @param data 
     */
    public void setData(ArrayList<MorososDTO> dataMorosos) {
        this.dataMorosos = dataMorosos;
    }
    
    /**
     * Permite obtener un elemento indicando su posición en la tabla
     * @param posicion
     * @return 
     */
    public int getElementAt(int posicion){
        return this.dataMorosos.get(posicion).getIdVenta();
    }

    
    /**
     * Sobreescribimos este método para que se puedan editar los valores
     * que se encunetran en las celdas de la tabla mostrada en la pantalla
     * @param row numero de fila
     * @param column numero de columna
     * @return true si la celda se puede modificar, false en caso contrario
     */
    @Override
    public boolean isCellEditable(int row, int column) {
        // Aquí devolvemos true o false según queramos que una celda
        // identificada por fila,columna (row,column), sea o no editable
        return false;                
    }

    /**
     * Devuelve la cantidad de filas de la tabla
     * @return 
     */
    @Override
    public int getRowCount() {
        return this.dataMorosos.size();
    }

    /**
     * Devuelve la cantidad de columnas de la tabla
     * @return 
     */
    @Override
    public int getColumnCount() {
        return this.columnNames.length;
    }
    
    /**
     * Devuelve el nombre de cada columna para utilizarse en el encabezado
     * @param col
     * @return 
     */
    @Override
     public String getColumnName(int col) { 
        return columnNames[col].toString(); 
    }

    /**
     * De acuerdo a la posición en la tabla devuelve el objeto que debe ubicarse
     * alli cuando se dibuja la misma
     * @param rowIndex
     * @param columnIndex
     * @return 
     */
    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        Object object = "";
        switch(columnIndex){
            case 0:
                object = this.dataMorosos.get(rowIndex).getCliente();
                break;
            case 1:
                object = this.dataMorosos.get(rowIndex).getTelefono();
                break;
            case 2:
                object = this.dataMorosos.get(rowIndex).getDireccion();
                break;
            case 3:
                object = this.dataMorosos.get(rowIndex).getFechaVencimiento();
                break;
            case 4:
                object = this.dataMorosos.get(rowIndex).getNumeroCuota();
                break;
            case 5:
                object =this.dataMorosos.get(rowIndex).getMonto();
                break;
           }
        return object;
    }
       
}
